<?php

namespace Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Mission
 *
 * @ORM\Table(name="mission")
 * @ORM\Entity
 */
class Mission
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="bigint", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    protected $id;

    /**
     * @var string
     *
     * @ORM\Column(name="uuid", type="string", length=36, nullable=false)
     */
    protected $uuid;

    /**
     * @var string
     *
     * @ORM\Column(name="type", type="string", length=45, nullable=false)
     */
    protected $type;

    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", length=250, nullable=false)
     */
    protected $name;

    /**
     * @var integer
     *
     * @ORM\Column(name="game_points_required", type="integer", nullable=false)
     */
    protected $gamePointsRequired;

    /**
     * @var integer
     *
     * @ORM\Column(name="maximum_duration", type="integer", nullable=true)
     */
    protected $maximumDuration;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="last_modified", type="datetime", nullable=false)
     */
    protected $lastModified;

    /**
     * @var string
     *
     * @ORM\Column(name="fail_text", type="string", length=250, nullable=false)
     */
    protected $failText;

    /**
     * @var string
     *
     * @ORM\Column(name="success_text", type="string", length=250, nullable=false)
     */
    protected $successText;

    /**
     * @var string
     *
     * @ORM\Column(name="reward_text", type="string", length=250, nullable=false)
     */
    protected $rewardText;

    /**
     * @var integer
     *
     * @ORM\Column(name="cooldown", type="integer", nullable=true)
     */
    protected $cooldown;

    /**
     * @var \Entity\Reward
     *
     * @ORM\ManyToOne(targetEntity="Entity\Reward")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="reward_id", referencedColumnName="id")
     * })
     */
    protected $reward;


    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set uuid
     *
     * @param string $uuid
     * @return Mission
     */
    public function setUuid($uuid)
    {
        $this->uuid = $uuid;
    
        return $this;
    }

    /**
     * Get uuid
     *
     * @return string 
     */
    public function getUuid()
    {
        return $this->uuid;
    }

    /**
     * Set type
     *
     * @param string $type
     * @return Mission
     */
    public function setType($type)
    {
        $this->type = $type;
    
        return $this;
    }

    /**
     * Get type
     *
     * @return string 
     */
    public function getType()
    {
        return $this->type;
    }

    /**
     * Set name
     *
     * @param string $name
     * @return Mission
     */
    public function setName($name)
    {
        $this->name = $name;
    
        return $this;
    }

    /**
     * Get name
     *
     * @return string 
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Set gamePointsRequired
     *
     * @param integer $gamePointsRequired
     * @return Mission
     */
    public function setGamePointsRequired($gamePointsRequired)
    {
        $this->gamePointsRequired = $gamePointsRequired;
    
        return $this;
    }

    /**
     * Get gamePointsRequired
     *
     * @return integer 
     */
    public function getGamePointsRequired()
    {
        return $this->gamePointsRequired;
    }

    /**
     * Set maximumDuration
     *
     * @param integer $maximumDuration
     * @return Mission
     */
    public function setMaximumDuration($maximumDuration)
    {
        $this->maximumDuration = $maximumDuration;
    
        return $this;
    }

    /**
     * Get maximumDuration
     *
     * @return integer 
     */
    public function getMaximumDuration()
    {
        return $this->maximumDuration;
    }

    /**
     * Set lastModified
     *
     * @param \DateTime $lastModified
     * @return Mission
     */
    public function setLastModified($lastModified)
    {
        $this->lastModified = $lastModified;
    
        return $this;
    }

    /**
     * Get lastModified
     *
     * @return \DateTime 
     */
    public function getLastModified()
    {
        return $this->lastModified;
    }

    /**
     * Set failText
     *
     * @param string $failText
     * @return Mission
     */
    public function setFailText($failText)
    {
        $this->failText = $failText;
    
        return $this;
    }

    /**
     * Get failText
     *
     * @return string 
     */
    public function getFailText()
    {
        return $this->failText;
    }

    /**
     * Set successText
     *
     * @param string $successText
     * @return Mission
     */
    public function setSuccessText($successText)
    {
        $this->successText = $successText;
    
        return $this;
    }

    /**
     * Get successText
     *
     * @return string 
     */
    public function getSuccessText()
    {
        return $this->successText;
    }

    /**
     * Set rewardText
     *
     * @param string $rewardText
     * @return Mission
     */
    public function setRewardText($rewardText)
    {
        $this->rewardText = $rewardText;
    
        return $this;
    }

    /**
     * Get rewardText
     *
     * @return string 
     */
    public function getRewardText()
    {
        return $this->rewardText;
    }

    /**
     * Set cooldown
     *
     * @param integer $cooldown
     * @return Mission
     */
    public function setCooldown($cooldown)
    {
        $this->cooldown = $cooldown;
    
        return $this;
    }

    /**
     * Get cooldown
     *
     * @return integer 
     */
    public function getCooldown()
    {
        return $this->cooldown;
    }

    /**
     * Set reward
     *
     * @param \Entity\Reward $reward
     * @return Mission
     */
    public function setReward(\Entity\Reward $reward = null)
    {
        $this->reward = $reward;
    
        return $this;
    }

    /**
     * Get reward
     *
     * @return \Entity\Reward 
     */
    public function getReward()
    {
        return $this->reward;
    }
}
